import java.io.IOException;
import java.net.SocketException;
import java.util.HashMap;
import java.util.Map;

//udp 版本的字典服务器
public class DictServer extends EchoServer{
    private Map<String,String> dict=new HashMap<>();
    public DictServer(int port) throws SocketException {
        super(port);
        dict.put("cat", "小猫");
        dict.put("dog", "小狗");
        dict.put("pig", "小猪");
        dict.put("bird", "小鸟");
        dict.put("sheep", "小羊");
        dict.put("cow", "小牛");
        dict.put("chicken", "小鸡");
        dict.put("rabbit", "小兔子");
        dict.put("fish", "小鱼");
        dict.put("wolf", "狼");
        dict.put("monkey", "猴子");
        dict.put("chicken", "小鸡");
        dict.put("fish", "小鱼");
        dict.put("tiger", "老虎");
        dict.put("lion", "狮子");
        dict.put("wolf", "狼");
        dict.put("monkey", "猴子");
    }

    @Override
    public String process(String request){
        //方法重写，本质上是对父类的功能进行扩展
        //本来父类是没有“翻译功能”的，通过重写把这个功能加上
        return dict.getOrDefault(request,"该单词没有查到！");
        /*在 Java 里，Map 接口（像 HashMap 等实现类）提供了 getOrDefault 方法，其作用是根据指定的键来获取对应的值，要是键不存在，就返回预先设定的默认值。
         default V getOrDefault(Object key, V defaultValue)
         key：需要查找的键。
         defaultValue：当键不存在时返回的默认值。
         返回值：若键存在，就返回与之对应的值；若键不存在，就返回 defaultValue。
         */
    }

    public static void main(String[] args) throws IOException {
        DictServer server=new DictServer(9090);
        server.start();
    }
}
